home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 151-175 / scopedisk161 / cgnhlp / cgnhlp.f < prev    next >
Text File  |  1995-03-19  |  2KB  |  67 lines

  1.       PROGRAM CGNHLP
  2.       IMPLICIT NONE
  3.       INTEGER MARG, NARG
  4.       PARAMETER (MARG=5)
  5.       CHARACTER*40 FILE
  6.       CHARACTER*50 ARG(MARG)
  7.       CHARACTER*79 CMDLIN
  8.       LOGICAL GO
  9.       DATA GO / .TRUE. /
  10. C
  11.       OPEN( 5, FILE='*' )
  12.       OPEN( 6, FILE='*' )
  13.       CALL ARGS( CMDLIN )
  14.       CALL BREAKU( CMDLIN, MARG, NARG, ARG )
  15.       IF( NARG .LE. 0 ) THEN
  16.          WRITE(5,*) 'Enter name of the .DOC file (without extension)'
  17.          READ(5,'(A)' ) ARG(1)
  18.       ELSEIF( ARG(1) .EQ. '?' ) THEN
  19.          CALL HELP
  20.          GO = .FALSE.
  21.       ELSE
  22.          FILE = ARG(1)
  23.       ENDIF
  24.       IF( GO ) THEN
  25.          CALL DOIT( FILE )
  26.       ENDIF
  27.       CLOSE( 6 )
  28.       CLOSE( 5 )
  29.       STOP
  30.       END
  31. C--------------------------------------------------------------------
  32.       SUBROUTINE DOIT( FILE )
  33.       IMPLICIT NONE
  34.       INTEGER BLANK, L, LASTC
  35.       CHARACTER*(*) FILE
  36.       CHARACTER*1 Q
  37.       CHARACTER*80 CARD
  38. C
  39.       BLANK = INDEX( FILE, ' ' ) - 1
  40.       OPEN( 1, FILE=FILE(1:BLANK)//'.DOC', STATUS='OLD' )
  41.       OPEN( 2, FILE='HELP.C', STATUS='NEW' )
  42.       Q = ''''
  43.       WRITE( 2, '(A)' ) 'int help( )'
  44.       WRITE( 2, '(A)' ) '{ '
  45.       DO WHILE( .TRUE. )
  46.          READ( 1, '(A)', END=7000 ) CARD
  47.          L = LASTC( CARD )
  48.          IF( L .LE. 0 ) THEN
  49.             L = 1
  50.          ENDIF
  51.          IF( L .LE. 40 ) THEN
  52.             WRITE( 2, '(A,A,A)' ) '   printf("', 
  53.      +      CARD(1:L), '  \n " ) ; '
  54.          ELSE
  55.             WRITE( 2, '(A,A,A)' ) '   printf("',
  56.      +      CARD(1:40), '" ) ; ' 
  57.             WRITE( 2, '(A,A,A)' ) '   printf("', 
  58.      +      CARD(41:L), ' \n " ) ; '
  59.          ENDIF
  60.       END DO
  61.  7000 WRITE( 2, '(A)' ) '   return( 0 ) ; '
  62.       WRITE( 2, '(A)' ) '} '
  63.       CLOSE( 2 )
  64.       CLOSE( 1 )
  65.       RETURN
  66.       END
  67.